//pinia状态管理
import { defineStore } from 'pinia'
import {  GetLoginKey, GetCodeImg, checkCodeStaus } from '@/api/api.ts'
import { ElMessage } from 'element-plus'
export const useLoginStore = defineStore({
  id: 'userlogin',
  state: () => ({
    squareUrl: 'https://cube.elemecdn.com/9/c2/f0ee8a3c7c9638a54940382568c9dpng.png',//用户头像
    name: '点击登录',//用户昵称
    showLogin: false,//登录的对话框
    sureLogin: true,//等待扫码是否确认登录
    Isoverdue:false,//二维码是否过期
    Islogin:false,//是否登录
    qrurl: ''
  }),
  actions: {
    //扫码登录
    async CodeLogin() {
      GetLoginKey().then(res => {
        GetCodeImg(res.data.data.unikey, true).then(codeRes => {
          this.qrurl = codeRes.data.data.qrimg
          //定时器检查登录状态
          var check = setInterval(() => {
            checkCodeStaus(res.data.data.unikey).then(stausRes => {
              if(stausRes.data.code === 801 && this.showLogin==false){
                //清楚定时器
                clearInterval(check)
              }
              //等待确认
              if (stausRes.data.code === 802) {
                this.sureLogin = false
                this.squareUrl = stausRes.data.avatarUrl
                this.name  = stausRes.data.nickname                
              }
              //扫描成功
              if (stausRes.data.code === 803) {
                //关闭弹出框
                this.showLogin = false
                //清楚定时器
                clearInterval(check)
                //消息提示
                ElMessage({
                  message: stausRes.data.message,
                  type: 'success',
                })
                this.Islogin = true
                localStorage.setItem("cookie", stausRes.data.cookie);
              }
              //二维码过期
              else if (stausRes.data.code === 800) {
                //清楚定时器
                clearInterval(check)
                this.Isoverdue=true
                this.qrurl=''
              }
            })
          }, 3000)
        })
      })
    },
  },
  getters: {
  },
});
